<html>
<head><meta charset="utf-8"><title>priorities for 2020 · wg-async-foundations · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/index.html">wg-async-foundations</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html">priorities for 2020</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="185043578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185043578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185043578">(Jan 07 2020 at 19:12)</a>:</h4>
<p>ok, I'm going to put some of my thoughts here</p>



<a name="185043999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185043999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185043999">(Jan 07 2020 at 19:16)</a>:</h4>
<p>there's.. a lot we can work on :)</p>



<a name="185044317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185044317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185044317">(Jan 07 2020 at 19:20)</a>:</h4>
<p>On the implementation side, overall categories I came up with were</p>
<ul>
<li>Diagnostics</li>
<li>Documentation (like the async book)</li>
<li>Debugging (e.g. deeper integration with gdb for async code)</li>
<li>Performance of async code</li>
<li>Compiler performance for async code</li>
<li>Language feature implementations (GATs, non-TLS-async)</li>
</ul>
<p>On the lang/libs side, we have things like</p>
<ul>
<li>async drop</li>
<li>async fn in traits</li>
<li>Library stabilizations (e.g. <code>AsyncRead</code>)</li>
<li>Stabilizing an interface for Executors (separating this out since it's likely a bigger project)</li>
</ul>



<a name="185044390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185044390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185044390">(Jan 07 2020 at 19:21)</a>:</h4>
<p>I guess documentation can go in either category</p>



<a name="185044460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185044460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185044460">(Jan 07 2020 at 19:22)</a>:</h4>
<p>I'm sort of trying to differentiate between "things we can do now" vs "things that need design discussions"</p>



<a name="185044483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185044483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185044483">(Jan 07 2020 at 19:22)</a>:</h4>
<p>and trying to focus more on the former, for now</p>



<a name="185044650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185044650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185044650">(Jan 07 2020 at 19:24)</a>:</h4>
<h2>First and foremost, I think we should be making async/await easier to use</h2>



<a name="185044695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185044695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185044695">(Jan 07 2020 at 19:24)</a>:</h4>
<p>that includes Diagnostics and Documentation above, as well as Debugging</p>



<a name="185045046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185045046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185045046">(Jan 07 2020 at 19:28)</a>:</h4>
<p>we should probably set aside some time to take stock of the async book, and what the state of the overall documentation is</p>



<a name="185045087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185045087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185045087">(Jan 07 2020 at 19:28)</a>:</h4>
<p>diagnostics is clearly ongoing, and we're making great progress there</p>



<a name="185045163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185045163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185045163">(Jan 07 2020 at 19:29)</a>:</h4>
<p>as for debugging</p>



<a name="185045506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185045506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185045506">(Jan 07 2020 at 19:32)</a>:</h4>
<p>there's some discussion within Fuchsia about doing a deep integration with our debugger, and I think that would be a good place to prototype the interfaces</p>



<a name="185045694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185045694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185045694">(Jan 07 2020 at 19:34)</a>:</h4>
<p>that will likely involve work in both the compiler and (eventually) in a standard interface for executors, so it kind of straddles both categories above</p>



<a name="185045771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185045771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185045771">(Jan 07 2020 at 19:35)</a>:</h4>
<p>but even if it has longer lead time, I think it's definitely worth putting some effort into this in 2020</p>



<a name="185045861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185045861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185045861">(Jan 07 2020 at 19:36)</a>:</h4>
<h2>Performance</h2>



<a name="185045885"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185045885" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185045885">(Jan 07 2020 at 19:36)</a>:</h4>
<p>we should focus on the lowest hanging fruit here first, of course</p>



<a name="185046087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046087">(Jan 07 2020 at 19:38)</a>:</h4>
<p>in particular I'd really like to fix <a href="https://github.com/rust-lang/rust/issues/62958" target="_blank" title="https://github.com/rust-lang/rust/issues/62958">#62958</a> "Async fn doubles argument size"</p>



<a name="185046146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046146">(Jan 07 2020 at 19:38)</a>:</h4>
<p>and I also think we need more benchmarks for async/await code, to catch compiler performance regressions</p>



<a name="185046210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046210">(Jan 07 2020 at 19:39)</a>:</h4>
<p>those two are my top priorities here, I think</p>



<a name="185046228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046228">(Jan 07 2020 at 19:39)</a>:</h4>
<p>beyond that, I think there's ample room to improve performance</p>



<a name="185046386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046386">(Jan 07 2020 at 19:41)</a>:</h4>
<p>e.g. in the generator implementation, one idea is to replace the switch on the generator state with a PC to jump to directly</p>



<a name="185046410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046410">(Jan 07 2020 at 19:41)</a>:</h4>
<p>it would be nice if we could do this in a way that requires only a single jump for a deeply nested state machine</p>



<a name="185046429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046429">(Jan 07 2020 at 19:41)</a>:</h4>
<p>but I'm getting ahead of myself :)</p>



<a name="185046490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046490">(Jan 07 2020 at 19:42)</a>:</h4>
<p>this isn't as important as anything I mentioned above</p>



<a name="185046614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046614">(Jan 07 2020 at 19:43)</a>:</h4>
<h2>Language features</h2>



<a name="185046628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046628">(Jan 07 2020 at 19:43)</a>:</h4>
<p>this one is a little hazier to me</p>



<a name="185046706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046706">(Jan 07 2020 at 19:44)</a>:</h4>
<p>GATs interacts with the traits wg, and is probably more "their thing"</p>



<a name="185046795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046795">(Jan 07 2020 at 19:45)</a>:</h4>
<p>my primary interest here is in <em>enabling prototyping for the most important language features</em></p>



<a name="185046839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046839">(Jan 07 2020 at 19:45)</a>:</h4>
<p>since those already have a longer lead time, we should think about anything we can do on the implementation side to reduce that</p>



<a name="185046950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185046950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185046950">(Jan 07 2020 at 19:46)</a>:</h4>
<p>--<br>
okay.. I think I'm going to leave it there for now</p>



<a name="185047021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185047021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185047021">(Jan 07 2020 at 19:47)</a>:</h4>
<p>still need to talk about the lang/libs side, at some point</p>



<a name="185047084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185047084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185047084">(Jan 07 2020 at 19:48)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="116009">@nikomatsakis</span>, any thoughts to add?</p>



<a name="185047422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185047422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185047422">(Jan 07 2020 at 19:50)</a>:</h4>
<p>(rhetorical question.. I'm sure you do <span aria-label="smile" class="emoji emoji-263a" role="img" title="smile">:smile:</span>)</p>



<a name="185051113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185051113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185051113">(Jan 07 2020 at 20:26)</a>:</h4>
<blockquote>
<p>Language features</p>
</blockquote>
<p>I think we shouldn't be having new RFCs or even work on async closures until most of the existing work is finished, that is, the bugs</p>



<a name="185060066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185060066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185060066">(Jan 07 2020 at 22:07)</a>:</h4>
<p>yes, I forgot to include bug fixes as an explicit category</p>



<a name="185060091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185060091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185060091">(Jan 07 2020 at 22:07)</a>:</h4>
<p>but agreed that those should be the highest priority</p>



<a name="185148949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185148949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185148949">(Jan 08 2020 at 19:39)</a>:</h4>
<p>A few thoughts</p>



<a name="185149039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185149039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185149039">(Jan 08 2020 at 19:40)</a>:</h4>
<p>First of all, I think we should stabilize the <code>Stream</code>, <code>AsyncRead</code>, and <code>AsyncWrite</code> traits, perhaps in that order. I've been talking to various folks and I think there's a fairly clear picture forming.</p>



<a name="185149064"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185149064" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185149064">(Jan 08 2020 at 19:41)</a>:</h4>
<p>I've also been forming a plan around GATs but I think that's more for <a class="stream" data-stream-id="144729" href="/#narrow/stream/144729-wg-traits">#wg-traits</a>, as you said.</p>



<a name="185149204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185149204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185149204">(Jan 08 2020 at 19:42)</a>:</h4>
<p>I guess I agree with almost everything you wrote <span class="user-mention" data-user-id="116883">@tmandry</span> -- diagnostics are definitely a huge point that I think comes up fairly regularly. I've not heard many complaints about <em>performance</em>.</p>



<a name="185149226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185149226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185149226">(Jan 08 2020 at 19:42)</a>:</h4>
<blockquote>
<p>I've also been forming a plan around GATs but I think that's more for <a class="stream" data-stream-id="144729" href="/#narrow/stream/144729-wg-traits">#wg-traits</a>, as you said.</p>
</blockquote>
<p>I think another lang feature that could tangentially be quite helpful, but which doesn't likely belong in "this group", is stabilizing and improving more parts of the <code>impl Trait</code> story</p>



<a name="185149382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185149382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185149382">(Jan 08 2020 at 19:44)</a>:</h4>
<blockquote>
<p>First of all, I think we should stabilize the <code>Stream</code>, <code>AsyncRead</code>, and <code>AsyncWrite</code> traits, perhaps in that order. I've been talking to various folks and I think there's a fairly clear picture forming.</p>
</blockquote>
<p>Do you have a plan to stabilize <code>Stream</code> without some form of GATs, or is it blocked on that?</p>



<a name="185150128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185150128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Steven Fackler <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185150128">(Jan 08 2020 at 19:53)</a>:</h4>
<p>IMO <code>Stream</code> would just be the async equivalent of <code>Iterator</code>, and GATs would allow the introduction of new <code>StreamingIterator</code>/<code>StreamingStream</code> in the future.</p>



<a name="185158613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185158613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185158613">(Jan 08 2020 at 21:24)</a>:</h4>
<p>What <span class="user-mention" data-user-id="243558">@Steven Fackler</span> said, basically</p>



<a name="185158648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185158648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185158648">(Jan 08 2020 at 21:25)</a>:</h4>
<blockquote>
<p>I think another lang feature that could tangentially be quite helpful, but which doesn't likely belong in "this group", is stabilizing and improving more parts of the impl Trait story</p>
</blockquote>
<p>(I agree, but this is blocked on fixing <em>a lot</em> of bugs and fully implementing the feature however. ^^)</p>



<a name="185158661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185158661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185158661">(Jan 08 2020 at 21:25)</a>:</h4>
<p>( also cc <span class="user-mention" data-user-id="256759">@boats</span> on this topic )</p>



<a name="185158752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185158752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185158752">(Jan 08 2020 at 21:26)</a>:</h4>
<blockquote>
<p>IMO <code>Stream</code> would just be the async equivalent of <code>Iterator</code>, and GATs would allow the introduction of new <code>StreamingIterator</code>/<code>StreamingStream</code> in the future.</p>
</blockquote>
<p>to elaborate on this, I think a guiding principle should be that the sync/async traits basically mirror one another, and that fits well in both of these cases</p>



<a name="185158829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185158829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185158829">(Jan 08 2020 at 21:27)</a>:</h4>
<p>Well... the <code>std::io::Read</code>trait is problematic in some respects, so I'm not fully sure that they must match (but that's a separate topic)</p>



<a name="185160754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185160754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185160754">(Jan 08 2020 at 21:50)</a>:</h4>
<p>I would also add block_on to the libs changes</p>



<a name="185160799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185160799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> boats <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185160799">(Jan 08 2020 at 21:51)</a>:</h4>
<p>And IMO there are a few very small new language features that are worth doing short term (mainly async drop)</p>



<a name="185173758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185173758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Steven Fackler <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185173758">(Jan 09 2020 at 00:45)</a>:</h4>
<p>I would be interested in some work on task locals. I imagine they could be implemented via a field in Context</p>



<a name="185255381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185255381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185255381">(Jan 09 2020 at 21:03)</a>:</h4>
<blockquote>
<p>And IMO there are a few very small new language features that are worth doing short term (mainly async drop)</p>
</blockquote>
<p>I was going to ask about async drop</p>



<a name="185561626"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185561626" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185561626">(Jan 14 2020 at 03:16)</a>:</h4>
<p>I put out a call for feedback from Fuchsia devs today. Here are the things that were echoed multiple times:</p>
<ul>
<li>More guidance on lifetime annotations (i.e. from the compiler, or maybe docs)</li>
<li>Educational materials, especially around <code>pin</code></li>
<li>Straightforward way of writing recursive async fns</li>
<li>Capture lists (to eliminate annoying/confusing boilerplate; they need a "clone" capture mode)</li>
<li>async support in functional helpers like map, filter, all, or_else, etc (an async version of these)</li>
<li>async fn in trait</li>
<li>async fns that create Streams</li>
</ul>
<p>Some of these are known, but some were new to me.</p>
<p>Other things that were mentioned:</p>
<ul>
<li>AsyncDrop</li>
<li><code>self: &amp;Arc&lt;Self&gt;</code></li>
<li>Visibility into cost of variables captured in the state machine</li>
<li>A SelectAll, but where I can access/drop streams by key</li>
<li>A Sink, but with a custom async backpressure function</li>
</ul>



<a name="185561641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185561641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185561641">(Jan 14 2020 at 03:17)</a>:</h4>
<p>Also, thanks for all the feedback</p>



<a name="185561689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185561689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185561689">(Jan 14 2020 at 03:18)</a>:</h4>
<p>We probably need a way to track all of these and assign priorities</p>



<a name="185561701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185561701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185561701">(Jan 14 2020 at 03:18)</a>:</h4>
<p>And produce a sort of "async roadmap" with the guiding themes, perhaps?</p>



<a name="185621407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185621407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giles Cope <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185621407">(Jan 14 2020 at 18:00)</a>:</h4>
<p>My pipe dream for async/await is a Stream created from an async fn that has some sugar that yields. <br>
Short term I suspect as everyone spinal tap's async/await and turns it up to 11, we will see calls to minimise any memory size overheads.</p>



<a name="185622953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185622953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185622953">(Jan 14 2020 at 18:17)</a>:</h4>
<p><span class="user-mention" data-user-id="116883">@tmandry</span> that's quite interesting -- particularly the "capture list" part, I had not heard that</p>



<a name="185622962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185622962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185622962">(Jan 14 2020 at 18:17)</a>:</h4>
<p>might be nice to have an example</p>



<a name="185622974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185622974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185622974">(Jan 14 2020 at 18:17)</a>:</h4>
<p>I'm reminded that I want to create a wg-async-foundations repository</p>



<a name="185622991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185622991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185622991">(Jan 14 2020 at 18:17)</a>:</h4>
<p>and start to create pages that talk about these sorts of things to help catalog requirements and constraints</p>



<a name="185634546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185634546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185634546">(Jan 14 2020 at 20:04)</a>:</h4>
<blockquote>
<p>I'm reminded that I want to create a wg-async-foundations repository</p>
</blockquote>
<p>yeah, I was thinking the same</p>



<a name="185635006"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185635006" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185635006">(Jan 14 2020 at 20:09)</a>:</h4>
<blockquote>
<p>might be nice to have an example</p>
</blockquote>
<p>the example of something that comes up a lot was</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="n">item</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Arc</span>::<span class="p">...;</span><span class="w"></span>
<span class="kd">let</span><span class="w"> </span><span class="n">item2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">item</span><span class="p">.</span><span class="n">clone</span><span class="p">();</span><span class="w"></span>
<span class="n">call_fn</span><span class="p">(</span><span class="k">async</span><span class="w"> </span><span class="k">move</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">item2</span><span class="p">...</span><span class="w"> </span><span class="p">});</span><span class="w"></span>
<span class="n">item</span><span class="p">...</span><span class="w"></span>
</pre></div>



<a name="185635166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185635166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185635166">(Jan 14 2020 at 20:11)</a>:</h4>
<p>(except we don't allow async closures in our tree, but you get the idea)</p>



<a name="185635257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185635257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185635257">(Jan 14 2020 at 20:12)</a>:</h4>
<p>I've also seen cases where some vars wanted to be captured by [mutable] reference and some by value</p>



<a name="185635649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185635649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185635649">(Jan 14 2020 at 20:17)</a>:</h4>
<p>but I'm not sure how common those are</p>



<a name="185635996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185635996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185635996">(Jan 14 2020 at 20:20)</a>:</h4>
<p>sometimes you can do this implicitly, but it can be hard to follow what's going on</p>



<a name="185636269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185636269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185636269">(Jan 14 2020 at 20:23)</a>:</h4>
<p>so I guess there's (1) removing clone boilerplate and (2) making capture semantics more explicit, easier to follow/control</p>



<a name="185636308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185636308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185636308">(Jan 14 2020 at 20:23)</a>:</h4>
<p>the person who brought up (2) was new to Rust and async/await. it might be a learning curve thing and figuring out the right idioms</p>



<a name="185636406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185636406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185636406">(Jan 14 2020 at 20:24)</a>:</h4>
<p>but personally, there is a level of implicitness in the capture semantics that sometimes makes me uncomfortable. :)</p>



<a name="185665150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/185665150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthias247 <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#185665150">(Jan 15 2020 at 03:33)</a>:</h4>
<p>Thanks for doing the research and asking for feedback <span class="user-mention" data-user-id="116883">@tmandry</span> !</p>



<a name="186212986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186212986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186212986">(Jan 21 2020 at 18:38)</a>:</h4>
<p>The pattern I generally use for capture clauses is to replace a closure expression with</p>
<div class="codehilite"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="p">.</span><span class="n">clone</span><span class="p">();</span><span class="w"> </span><span class="c1">// one line per variable I want to &quot;declare&quot;</span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">y</span><span class="p">;</span><span class="w"> </span><span class="c1">// borrow y by shared ref</span>
<span class="w">    </span><span class="kd">let</span><span class="w"> </span><span class="n">z</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">z</span><span class="p">;</span><span class="w"> </span><span class="c1">// take ownership of `z`</span>
<span class="w">    </span><span class="k">move</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="p">{...}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>


<p>but while this sometimes strikes me as "elegant", it seems clear that most people don't think of it (or perhaps don't care for it), and that it might be nice to have some explicit syntax for declaring what you will capture (plus nothing guarantees that you <em>only</em> capture the variables listed there, which is maybe suboptimal.</p>



<a name="186213639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186213639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186213639">(Jan 21 2020 at 18:45)</a>:</h4>
<p>Anyway, zooming out, did anybody here create a big list of thoughts? One list I made was the one I used for [the "async interviews script"](<a href="https://gist.github.com/nikomatsakis/ae2ede32c4c7d49cbda088a1539724d9" target="_blank" title="https://gist.github.com/nikomatsakis/ae2ede32c4c7d49cbda088a1539724d9">https://gist.github.com/nikomatsakis/ae2ede32c4c7d49cbda088a1539724d9</a>, though it's a bit incomplete now</p>



<a name="186213780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186213780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186213780">(Jan 21 2020 at 18:46)</a>:</h4>
<p>I did not</p>



<a name="186213784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186213784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186213784">(Jan 21 2020 at 18:46)</a>:</h4>
<p>I think that from my POV the things I would put atop the list would be</p>
<ul>
<li>add the stream, async-read, async-write traits to libstd</li>
<li>continued polish on diagnostics </li>
<li>perhaps a few things like async-drop, <code>IntoFuture</code>, or other smaller proposals</li>
</ul>



<a name="186213943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186213943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186213943">(Jan 21 2020 at 18:48)</a>:</h4>
<p>Why those things? Well, the first ones because they seem to be pretty major candidates for enabling more interop, and because I think the discussions at this point are pretty far along.</p>



<a name="186213991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186213991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186213991">(Jan 21 2020 at 18:49)</a>:</h4>
<p>The second one because it's the most common complaint :) though it'd be good to maybe drill in more on just what it means</p>



<a name="186214079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214079">(Jan 21 2020 at 18:50)</a>:</h4>
<p>not sure async-drop is small btw</p>



<a name="186214131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214131">(Jan 21 2020 at 18:50)</a>:</h4>
<p>I'm not sure about the final line, I guess it depends how much energy goes into it, but it seems like it closes some known shortcomings and I wouldn't expect a lot of controversy there</p>



<a name="186214204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214204">(Jan 21 2020 at 18:51)</a>:</h4>
<p>Agreed, I'm not entirely clear about async-drop's size. e.g., there is the idea of generalizing a bit to <a class="stream-topic" data-stream-id="187312" href="/#narrow/stream/187312-wg-async-foundations/topic/Async.20Lifecycles">#wg-async-foundations &gt; Async Lifecycles</a>, though I've not yet read most of the comments in that topic :)</p>



<a name="186214210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214210">(Jan 21 2020 at 18:51)</a>:</h4>
<p><code>IntoFuture</code> was legitimately classified as small cause the actual code changes were trivial and the open questions basically none (except bikeshed on <code>type Output</code> but that was resolved quickly thankfully)</p>



<a name="186214400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214400">(Jan 21 2020 at 18:53)</a>:</h4>
<p>Agreed that we should be prioritizing things that improve interop, especially the easy ones :)</p>



<a name="186214459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214459">(Jan 21 2020 at 18:54)</a>:</h4>
<p>And I think that diagnostics/ease of use are really important</p>



<a name="186214510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214510">(Jan 21 2020 at 18:54)</a>:</h4>
<p>I think it's unclear to me how much effort needs to go into documentation / async book, though</p>



<a name="186214518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214518">(Jan 21 2020 at 18:54)</a>:</h4>
<p>it's at least "some"</p>



<a name="186214529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214529">(Jan 21 2020 at 18:54)</a>:</h4>
<p>but I don't think we have a good way of tracking work like that</p>



<a name="186214534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214534">(Jan 21 2020 at 18:54)</a>:</h4>
<blockquote>
<p>I think it's unclear to me how much effort needs to go into documentation / async book, though</p>
</blockquote>
<p>Yes, I think this is a good question</p>



<a name="186214558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214558">(Jan 21 2020 at 18:55)</a>:</h4>
<p>(which reminds me, we should get a github repo set up for the wg)</p>



<a name="186214590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214590">(Jan 21 2020 at 18:55)</a>:</h4>
<p>One question is what our "goal" should be there, to some extent</p>



<a name="186214633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214633">(Jan 21 2020 at 18:56)</a>:</h4>
<p>I actually don't think we should be prioritizing interop right now, while bugs still exist</p>



<a name="186214692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214692">(Jan 21 2020 at 18:56)</a>:</h4>
<p>we essentially stabilized with a bunch of bugs open, which have to be paid off</p>



<a name="186214747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214747">(Jan 21 2020 at 18:57)</a>:</h4>
<p>agreed that fixing bugs is higher priority, in general</p>



<a name="186214766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214766">(Jan 21 2020 at 18:57)</a>:</h4>
<p>(basically, going forward, I think our policy should be that a feature has zero bugs before it can be stabilized)</p>



<a name="186214853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214853">(Jan 21 2020 at 18:58)</a>:</h4>
<p>I guess it all depends on what one defines as a bug</p>



<a name="186214871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214871">(Jan 21 2020 at 18:58)</a>:</h4>
<p>but I don't think that's very practical nor especially desirable</p>



<a name="186214890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214890">(Jan 21 2020 at 18:58)</a>:</h4>
<p>well ICEs are included for sure</p>



<a name="186214897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214897">(Jan 21 2020 at 18:58)</a>:</h4>
<p>crashes also</p>



<a name="186214905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214905">(Jan 21 2020 at 18:58)</a>:</h4>
<p>I guess I'm curious which open bugs you think we should be emphasizing, <span class="user-mention" data-user-id="126931">@centril</span>?</p>



<a name="186214907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186214907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186214907">(Jan 21 2020 at 18:58)</a>:</h4>
<p>and soundness holes</p>



<a name="186215114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215114">(Jan 21 2020 at 19:00)</a>:</h4>
<p>That is, I think most of the cases we're concerned about at this point are either diagnostic failures or cases where we are more conservative than we would like. I do think we should work to fix them, but they don't strike me as things that automatically take priority over concerns around fostering a healthy ecosystem. In any case i'm not sure how much of an either-or proposition it is, though I think it may be at least somewhat. =)</p>



<a name="186215227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215227">(Jan 21 2020 at 19:01)</a>:</h4>
<p>Yeah, it's useful to draw a distinction around the overly conservative parts for sure</p>



<a name="186215249"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215249" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215249">(Jan 21 2020 at 19:01)</a>:</h4>
<p>I put those in basically the same category as diagnostics, because they make the feature harder to use</p>



<a name="186215323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215323">(Jan 21 2020 at 19:02)</a>:</h4>
<p>"Ergonomics", to some extent</p>



<a name="186215325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215325">(Jan 21 2020 at 19:02)</a>:</h4>
<p>There are some non-diagnostic ICEs remaining, and hacks we added around e.g. <code>Self</code></p>



<a name="186215340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215340">(Jan 21 2020 at 19:02)</a>:</h4>
<p>I don't remember, are those ICEs now?</p>



<a name="186215360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215360">(Jan 21 2020 at 19:02)</a>:</h4>
<p>( I thought they were controlled errors )</p>



<a name="186215542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215542">(Jan 21 2020 at 19:04)</a>:</h4>
<p>the issue tracker suggests there are non-diagnostic ICEs at least</p>



<a name="186215550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215550">(Jan 21 2020 at 19:04)</a>:</h4>
<p>going on labels</p>



<a name="186215633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215633">(Jan 21 2020 at 19:05)</a>:</h4>
<p>Oh, I see, I misinterpreted your comment as suggesting that the "hacks we added" and "non-diagnostic ICEs" were the same thing</p>



<a name="186215762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215762">(Jan 21 2020 at 19:07)</a>:</h4>
<p>I am pondering :) I do think it's important that we continue polish work -- I am bridling somewhat at the thought of putting further progress on Stream/Async* on hold -- but I'm wondering if I am being unwise.</p>



<a name="186215769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215769">(Jan 21 2020 at 19:07)</a>:</h4>
<p>I guess in general I think we should do <em>some</em> of both</p>



<a name="186215801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215801">(Jan 21 2020 at 19:07)</a>:</h4>
<p>to be clear, I'm mostly thinking of compiler/lang things here</p>



<a name="186215804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215804">(Jan 21 2020 at 19:07)</a>:</h4>
<p>That is, continue making progress on things that the ecosystem needs to expand, while polishing what we have. But do we have the bandwidth to pull them both off? That is a key question</p>



<a name="186215811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215811">(Jan 21 2020 at 19:07)</a>:</h4>
<p>I would be inclined to take, however, modest steps</p>



<a name="186215819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215819">(Jan 21 2020 at 19:07)</a>:</h4>
<p>Which is why I've not mentioned things like generator syntax</p>



<a name="186215870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215870">(Jan 21 2020 at 19:08)</a>:</h4>
<p>like if there are pure libs improvements that improve ergonomics then why not do it in parallel</p>



<a name="186215880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215880">(Jan 21 2020 at 19:08)</a>:</h4>
<p>And also why I suggested the 3 traits I did, as I think that a lot of the questions there are fairly well understood at this point</p>



<a name="186215883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215883">(Jan 21 2020 at 19:08)</a>:</h4>
<blockquote>
<p>to be clear, I'm mostly thinking of compiler/lang things here</p>
</blockquote>
<p>I see</p>



<a name="186215891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215891">(Jan 21 2020 at 19:08)</a>:</h4>
<p>wel, indeed, those things are purely libs :)</p>



<a name="186215910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215910">(Jan 21 2020 at 19:09)</a>:</h4>
<p>not sure about bandwidth, to some extent I think we can parallelize (e.g. not all people are involved in both)</p>



<a name="186215914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215914">(Jan 21 2020 at 19:09)</a>:</h4>
<p>(and, further, on my list has been to talk to the libs team more about those next steps, since I think I would want to do it in concert with them)</p>



<a name="186215918"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215918" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215918">(Jan 21 2020 at 19:09)</a>:</h4>
<p>Although there might be libs things that want to wait on lang things, but well, the things they want to wait on will not be done tomorrow ^^</p>



<a name="186215934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215934">(Jan 21 2020 at 19:09)</a>:</h4>
<p>I'm also inclined to do both btw</p>



<a name="186215944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215944">(Jan 21 2020 at 19:09)</a>:</h4>
<p>but we should figure out what the bottlenecks are going to be</p>



<a name="186215958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215958">(Jan 21 2020 at 19:09)</a>:</h4>
<p>I think we should be able to parallelize, yes... as I said, I was thinking of that when I drew up that list</p>



<a name="186215960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186215960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186215960">(Jan 21 2020 at 19:09)</a>:</h4>
<p>(or try?)</p>



<a name="186216044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216044">(Jan 21 2020 at 19:10)</a>:</h4>
<p>but it's also true that it's not entirely clear to me <em>who</em> will be doing what -- it feels like we have to grow the "bench" somewhat</p>



<a name="186216108"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216108" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216108">(Jan 21 2020 at 19:11)</a>:</h4>
<p>yeah, I was trying to find a list of people on the wg, and failing :)</p>



<a name="186216129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216129">(Jan 21 2020 at 19:11)</a>:</h4>
<blockquote>
<p>And also why I suggested the 3 traits I did, as I think that a lot of the questions there are fairly well understood at this point</p>
</blockquote>
<p>Have we figured out what to do with the fact that <code>&amp;mut [u8]</code> provided an uninitialized slice is UB? (<a href="https://github.com/rust-lang/unsafe-code-guidelines/issues/77" target="_blank" title="https://github.com/rust-lang/unsafe-code-guidelines/issues/77">https://github.com/rust-lang/unsafe-code-guidelines/issues/77</a>)</p>



<a name="186216146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216146">(Jan 21 2020 at 19:11)</a>:</h4>
<p>even though I know who's been involved lately</p>



<a name="186216275"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216275" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216275">(Jan 21 2020 at 19:13)</a>:</h4>
<blockquote>
<p>Have we figured out what to do with the fact that <code>&amp;mut [u8]</code> provided an uninitialized slice is UB?</p>
</blockquote>
<p>depends on who you ask :) but I think we've worked out most of the tradeoffs, and I also think that the problem is one that is best solved in concert with the work on sync <code>Read</code> trait; <span class="user-mention" data-user-id="243558">@Steven Fackler</span> is working on a proposal, you can read about it in <a class="stream-topic" data-stream-id="219381" href="/#narrow/stream/219381-t-libs/topic/Read.20.2B.20uninit.20memory">#t-libs &gt; Read + uninit memory</a> I think</p>



<a name="186216298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216298">(Jan 21 2020 at 19:13)</a>:</h4>
<blockquote>
<p>yeah, I was trying to find a list of people on the wg, and failing :)</p>
</blockquote>
<p>I've been trying to get more formal about these sorts of things, I'll ping you, let's fix up the teams repo</p>



<a name="186216423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216423">(Jan 21 2020 at 19:14)</a>:</h4>
<blockquote>
<p>One question is what our "goal" should be there, to some extent</p>
</blockquote>
<p>I guess the ideal case would be a natural addendum to the Rust book</p>



<a name="186216706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216706">(Jan 21 2020 at 19:17)</a>:</h4>
<p>Is the separate book strategy not working?</p>



<a name="186216723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216723">(Jan 21 2020 at 19:18)</a>:</h4>
<p>not <em>actually</em> being added, but the standards of quality it would imply</p>



<a name="186216770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216770">(Jan 21 2020 at 19:18)</a>:</h4>
<p>oh</p>



<a name="186216779"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216779" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216779">(Jan 21 2020 at 19:18)</a>:</h4>
<p>well</p>



<a name="186216784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216784">(Jan 21 2020 at 19:18)</a>:</h4>
<p>(sorry, unclear)</p>



<a name="186216793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216793">(Jan 21 2020 at 19:18)</a>:</h4>
<p>but maybe that's just not feasible</p>



<a name="186216802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216802">(Jan 21 2020 at 19:18)</a>:</h4>
<p>given limited resources :)</p>



<a name="186216803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216803">(Jan 21 2020 at 19:18)</a>:</h4>
<p>I think it's a matter of time</p>



<a name="186216810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216810">(Jan 21 2020 at 19:18)</a>:</h4>
<p>the book didn't get polished over night</p>



<a name="186216831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216831">(Jan 21 2020 at 19:18)</a>:</h4>
<p>ps one other question is maintinance and strategy around futures-rs, I'm not really sure who the maintainers there are besides <span class="user-mention" data-user-id="127859">@Taylor Cramer</span>, though I tknow there are folks</p>



<a name="186216992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186216992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186216992">(Jan 21 2020 at 19:20)</a>:</h4>
<p>re: the book, I think the level of quality is not the concern so much as the "table of contents" -- like, what is the focus going to be, etc, but I think that's a process that is not going to get solved in this meeting at this second.</p>



<a name="186217024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186217024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186217024">(Jan 21 2020 at 19:20)</a>:</h4>
<p>still, I think it should go on a list of "things to work out"</p>



<a name="186217105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186217105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186217105">(Jan 21 2020 at 19:21)</a>:</h4>
<p>I think also a good question is "what is the role of doc from frameworks like tokio, async-std, bastion etc" -- i.e., maybe our goal should be to help people get started, and direct to other frameworks for the detailed questions that go beyond libstd</p>



<a name="186217107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186217107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186217107">(Jan 21 2020 at 19:21)</a>:</h4>
<p>ah okay, I was thinking more of polish / making it more accessible, and adding any obvious missing pieces</p>



<a name="186217208"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186217208" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186217208">(Jan 21 2020 at 19:22)</a>:</h4>
<p>but I do think the existing material is very good -- i.e., covering how the model works etc</p>



<a name="186217273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186217273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186217273">(Jan 21 2020 at 19:23)</a>:</h4>
<blockquote>
<p>ah okay, I was thinking more of polish / making it more accessible, and adding any obvious missing pieces</p>
</blockquote>
<p>I'm not sure if this is different than what I said :) maybe I'm just reflecting my own uncertainty a bit</p>



<a name="186217276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186217276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186217276">(Jan 21 2020 at 19:23)</a>:</h4>
<p>I like the idea of offloading non-std stuff to frameworks :)</p>



<a name="186217410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186217410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186217410">(Jan 21 2020 at 19:24)</a>:</h4>
<p>one other thing btw that was not on my list but which may fall in the "small, actionable improvements" is things like extending libstd to include an async mutex and other small utilities</p>



<a name="186217432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186217432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186217432">(Jan 21 2020 at 19:25)</a>:</h4>
<p>these are all libs-oriented changes, though</p>



<a name="186228621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186228621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lucio Franco <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186228621">(Jan 21 2020 at 21:17)</a>:</h4>
<p>I may have missed this and sorry for being late to this convo, but is there mention of <code>type_alias_impl_trait</code> as being grouped in a thing that might want to be prioritized along with GAT/wg-traits stuff? I know this would be incredibly useful for tower.</p>



<a name="186232821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186232821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186232821">(Jan 21 2020 at 22:01)</a>:</h4>
<p>I think <code>type_alias_impl_trait</code> is an important feature to work on, but it's also full of bugs. It will take much work to fix it, but <span class="user-mention" data-user-id="125294">@Aaron Hill</span> has been doing some of that</p>



<a name="186233092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186233092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186233092">(Jan 21 2020 at 22:05)</a>:</h4>
<p>I think there's still some design work that needs to be done as well. The current 'must be a fully generic use in defining scope' limitation isn't great</p>



<a name="186233114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186233114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186233114">(Jan 21 2020 at 22:05)</a>:</h4>
<p>I'm not sure what the best solution is, though</p>



<a name="186233147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186233147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186233147">(Jan 21 2020 at 22:05)</a>:</h4>
<p><span class="user-mention" data-user-id="125294">@Aaron Hill</span> that's <del>only</del> about allowing more code?</p>



<a name="186233224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/187312-wg-async-foundations/topic/priorities%20for%202020/near/186233224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Hill <a href="https://rust-lang.github.io/zulip_archive/stream/187312-wg-async-foundations/topic/priorities.20for.202020.html#186233224">(Jan 21 2020 at 22:06)</a>:</h4>
<p>yeah - I meant in terms of it being ready for stabilization</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>